There has been a rapid increase in the number of consumer grade 3D software applications, especially targeted towards the domains of interactive media and 3D games. An increasingly large percentage of the digital media that we view or interact with today are now being created using these applications.
All consumer 3D software applications must support some form of camera navigation and tools for component or object positioning. Camera navigation essentially provides a means for viewing the scene from various angles and distance or detail. Real time camera navigation in the 3D scene has become an integral part of all 3D software applications.
Graphical tools for computer-implemented component or object (i.e., 3D virtual object) positioning are essential in 3D software applications that support some form of scene compositing. These tools allow the user to interactively place a 3D virtual object in a required location in a 3D virtual scene.
Until recently, few people used to interact with 3D virtual scenes large enough to require extensive component or object positioning operations. However, this scenario is changing rapidly with the increasing availability of large and complex 3D models and virtual scenes, and with the rise of various low end polygonal modelers and virtual scene compositing applications. Scene composition is rapidly becoming popular among a large section of artists, architects and designers.
Most 3D software applications use a familiar onscreen triad shaped object controller for approximate component or object positioning (i.e., manipulation of data representing a 3D virtual object to position the 3D virtual object within a 3D virtual scene). The various parts of this controller can be dragged to move the 3D virtual object along an axis or across a movement plane. Additionally the 3D virtual object can also be rotated by dragging parts of the object controller.
While small scale movement using the object controller can be achieved easily, large scale positioning of a 3D virtual object using the object controller alone is difficult. Large scale 3D virtual object movement requires the user to reorient the camera several times to accurately place the component in the scene. This is because the spatial relationship of the component with the rest of the scene is not immediately apparent from a single point of view.
There are no prior art systems for aiding large scale 3D virtual object movement in 3D virtual scenes (“3D virtual space”). However, there exists significant prior art in techniques for camera navigation. (See Nicholas Burtnyk, Azam Khan, George Fitzmaurice, Ravin Balakrishnan, Gordon Kurtenbach. StyleCam: Interactive Stylized 3D Navigation using Integrated Spatial & Temporal Controls. In Proceedings of ACM UIST 2002, pages 101-110, 2002.) These studies are all aimed towards providing a simplified 3D camera navigation model by constraining the camera using various techniques. (See Azam Khan, Igor Mordatch, George Fitzmaurice, Justin Matejka and Gordon Kurtenbach. ViewCube: a 3D Orientation Indicator and Controller. In Proceedings of the 2008 Symposium on Interactive 3D Graphics and Games, Feb. 15-17, 2008, Redwood City, Calif.) From a study of these references it is clear that camera navigation poses a significant problem in scene compositing. (See Azam Khan, Igor Mordatch, George Fitzmaurice, Justin Matejka and Gordon Kurtenbach. Safe 3D Navigation. In Proceedings of the 2008 Symposium on Interactive 3D Graphics and Games, pages 7-15, Feb. 15-17, 2008, Redwood City, Calif.)
There exists prior art in small scale 3D virtual object movement for purposes of alignment and object modeling. Here 3D virtual objects are snapped to grid lines for proper alignment. (See Eric A. Bier. Snap-Dragging in Three Dimensions. In Proceedings of the 1990 symposium on Interactive 3D graphics, pages 193-203, 1990). Such a system doesn't readily scale up for large scale 3D virtual object movement, because the density of the grid lines increases when viewed in perspective or when viewed at a low angle.
Guide planes, grids and lines are used in many 3D scene modeling applications to enable the user to model 3D virtual objects accurately and interactively. In most of these systems the user's cursor or the virtual manipulation pointer gets automatically snapped onto the grid or guide lines, when the cursor is a small distance away from the line or plane. This allows the user to model objects within the tolerance offered by the system of grids. This also allows the user to accurately align 3D virtual objects, by aligning each object to the same grid line or plane. However, as mentioned earlier these techniques cannot be scaled for large scale 3D virtual object positioning.
In summary, while there exists significant prior art in aids for camera navigation and small scale 3D virtual object alignment and movement, there are no prior art in aids for large scale 3D virtual object positioning. Large scale 3D virtual object positioning is required in 3D virtual scene compositing software applications, which are rapidly becoming popular among artists and designers.